package org.blog.service;

import java.util.List;

import org.blog.helper.Result;
import org.blog.model.ModelArticle;
import org.blog.model.ModelPassport;

public interface ArticleService {

	/**
	 * 添加文章，带有权限验证
	 * 
	 * @param t
	 */
	public Result<?> addUserArticleWithRole(ModelArticle t,
			ModelPassport passport);

	/**
	 * 修改文章，带有权限验证
	 * 
	 * @param t
	 */
	public Result<?> modifyUserArticleWithRole(ModelArticle t,
			ModelPassport passport);

	/**
	 * 根据主键删除文章，带有权限验证
	 * 
	 * @param t
	 */
	public Result<?> deleteUserArticleWithRole(ModelArticle t,
			ModelPassport passport);
	
	/**
	 * 根据主键管理员带有权限验证
	 * 
	 * @param t
	 */
	public Result<?> deleteAdminArticleWithRole(ModelArticle t,
			ModelPassport passport);

	/**
	 * 根据主键获取某一篇文章
	 * 
	 * @param id
	 * @return
	 */
	public Result<ModelArticle> getArticle(ModelArticle t);

	/**
	 * 获取用户所有发布的文章
	 * 
	 * @return
	 */
	public Result<List<ModelArticle>> getUserListArticle(ModelPassport passport);

	/**
	 * 获取用户所有草稿的文章
	 * 
	 * @return
	 */
	public Result<List<ModelArticle>> getUserDraftListArticle(
			ModelPassport passport);

	/**
	 * 分页获取所有文章
	 * 
	 * @return
	 */
	public Result<?> getListArticle(int page);

	/**
	 * 分页获取分类里面的所有文章
	 * 
	 * @param page
	 * @return
	 */
	public Result<?> getListCatalogArticle(ModelArticle t,int page);
}
